package com.szh.zx.gaoDingJavaBook.chapter8.one;

import java.util.Collection;
import java.util.HashSet;
import java.util.function.Predicate;

public class PredicateTest {
	public static void main(String[] args) {
		Collection books = new HashSet();
		books.add("轻量级javaee企业级应用实战");
		books.add("疯狂java讲义");
		books.add("疯狂android讲义");
		books.add("疯狂android讲义22222222");
		books.add("疯狂android讲义3333333333");
		books.add("疯狂android讲义44444444444444444444");
//		使用Lambda 表达式遍历集合
		books.removeIf(ele -> ((String) ele).length() < 5);
		System.out.println(books);
		System.out.println("========================");
		/*
		* Predicate 充分简化了集合的运算
		* 统计需求
		* 1.统计出现字符：java 的数量
		* 2.统计书名大于10的数量
		* 实际上还有更多的需求
		* */
		System.out.println(calAll(books,ele->((String) ele).contains("java")));
		System.out.println(calAll(books,ele->((String )ele).length()>10));
	}
	public static int calAll(Collection books , Predicate p){
		int total = 0;
		for (Object obj :
				books) {
//			使用Predicate 的test方法判断该对象是否满足Predicate指定的条件
			if (p.test(obj)){
				total ++;
			}
		}
		return total;
	}
}
